// ---- Created with 3Dmigoto v1.3.16 on Mon Jul 13 21:00:07 2026
cbuffer cb2 : register(b2)
{
  float4 cb2[65];
}

cbuffer cb1 : register(b1)
{
  float4 cb1[34];
}

cbuffer cb0 : register(b0)
{
  float4 cb0[136];
}




// 3Dmigoto declarations
#define cmp -
Texture1D<float4> IniParams : register(t120);
#define pCensor IniParams[219].x


void main(
  float4 v0 : SV_POSITION0,
  float4 v1 : TEXCOORD10,
  float4 v2 : TEXCOORD11,
  float4 v3 : TEXCOORD0,
  float4 v4 : TEXCOORD1,
  float4 v5 : TEXCOORD2,
  float2 v6 : TEXCOORD3,
  uint v7 : SV_IsFrontFace0,
  out float4 o0 : SV_Target0)
{
  const float4 icb[] = { { 0, 0, 0, 0},
                              { 0.777777791, 0, 0, 0},
                              { 0.333333343, 0, 0, 0},
                              { 0.666666687, 0, 0, 0},
                              { 0.555555582, 0, 0, 0},
                              { 0.222222224, 0, 0, 0},
                              { 0.444444448, 0, 0, 0},
                              { 0.111111112, 0, 0, 0},
                              { 0.888888896, 0, 0, 0} };
  float4 r0,r1,r2,r3,r4;
  uint4 bitmask, uiDest;
  float4 fDest;

  r0.xy = -cb0[134].xy + v0.xy;
  r1.yz = cb0[135].zw * r0.xy;
  r0.z = cb2[64].y + -v6.y;
  r0.w = cmp(cb2[57].y >= 0.5);
  if (r0.w != 0) {
    r2.xyzw = cb0[45].xyzw * v0.yyyy;
    r2.xyzw = v0.xxxx * cb0[44].xyzw + r2.xyzw;
    r2.xyzw = v0.zzzz * cb0[46].xyzw + r2.xyzw;
    r2.xyzw = cb0[47].xyzw + r2.xyzw;
    r2.xyz = r2.xyz / r2.www;
    r2.xyz = -cb0[70].xyz + r2.xyz;
    r3.x = -cb1[32].w;
    r3.yz = -cb1[33].xy;
    r2.xyz = r3.xyz + r2.xyz;
    r4.xy = cb1[27].zw * r2.xx;
    r4.z = cb1[28].x * r2.x;
    r2.xyw = cb1[28].yzw * r2.yyy + r4.xyz;
    r2.xyz = cb1[29].xyz * r2.zzz + r2.xyw;
    r0.w = -cb2[57].z + r2.x;
    r1.w = dot(r2.yz, r2.yz);
    r1.w = sqrt(r1.w);
    r1.w = r1.w * 0.0153846154 + -0.200000003;
    r1.w = saturate(1.25 * r1.w);
    r2.x = r1.w * -2 + 3;
    r1.w = r1.w * r1.w;
    r1.w = r2.x * r1.w;
    r2.x = saturate(-1 + -r2.y);
    r1.w = r2.x * r1.w;
    r1.w = min(1, r1.w);
    r1.w = r1.w * 54.5 + 0.5;
    r1.w = saturate(r0.w / r1.w);
    r1.w = 1 + -r1.w;
    r0.w = cmp(0.00999999978 >= r0.w);
    r2.x = dot(r3.xyz, r3.xyz);
    r2.x = sqrt(r2.x);
    r2.x = cmp(r2.x >= 0.00999999978);
    r2.x = r2.x ? 0 : 1;
    r0.w = r0.w ? 1 : r2.x;
  } else {
    r2.x = min(cb2[58].y, cb2[58].z);
    r1.w = min(1, r2.x);
    r0.w = 0;
  }
  r2.x = cmp(0.300000012 < cb2[58].w);
  if (pCensor != 0) r2.x = 0;
  if (r2.x != 0) {
    r0.xy = (int2)r0.xy;
    r2.yz = (int2)r0.xy & int2(0x80000000,0x80000000);
    r0.xy = max((int2)-r0.xy, (int2)r0.xy);
    r0.xy = (uint2)r0.xy % int2(3,3);
    r3.xy = -(int2)r0.xy;
    r0.xy = r2.yz ? r3.xy : r0.xy;
    r0.x = mad((int)r0.x, 3, (int)r0.y);
    r0.x = max(0, (int)r0.x);
    r0.x = saturate(r1.w * 2 + -icb[r0.x+0].x);
    r0.x = 0.329078436 + r0.x;
  }
  r0.x = r2.x ? r0.x : 1;
  r0.y = 1 + -r0.x;
  r0.x = r0.w * r0.y + r0.x;
  r0.x = min(1, r0.x);
  r0.y = cb0[135].x / cb0[135].y;
  r0.y = max(1, r0.y);
  r2.x = cb2[59].x * r0.y;
  r2.yw = float2(0.5,0.5);
  r1.x = r0.y * r1.y;
  r1.yw = -r2.xy + r1.xz;
  r0.w = dot(r1.yw, cb2[39].xy);
  r0.w = r0.y * cb2[59].x + r0.w;
  r0.w = cmp(r0.w >= r2.x);
  r2.z = cb2[61].x * r0.y;
  r1.xz = -r2.zw + r1.xz;
  r1.x = dot(r1.xz, cb2[41].xy);
  r0.y = cb2[61].x * r0.y + r1.x;
  r0.y = cmp(r0.y >= r2.z);
  r1.xy = r0.yw ? float2(1,1) : 0;
  r0.y = r0.y ? -1 : -0;
  r0.y = r1.y + r0.y;
  r0.y = max(0, r0.y);
  r1.yz = r0.ww ? float2(0,-0) : float2(1,-1);
  r0.y = r1.z + r0.y;
  r0.y = cb2[63].y * r0.y + r1.y;
  r0.w = r1.x + -r0.y;
  r0.y = cb2[63].w * r0.w + r0.y;
  r0.y = -1 + r0.y;
  r0.y = cb2[64].x * r0.y + 1;
  r0.x = min(r0.x, r0.y);
  r0.xy = float2(-0.333000004,1) + r0.xz;
  r0.x = cmp(r0.x >= 0.00100000005);
  r0.x = r0.x ? 1.000000 : 0;
  r0.y = saturate(cb2[64].z * r0.y);
  r0.y = -1 + r0.y;
  r0.y = cb2[64].w * r0.y + 1;
  r0.x = saturate(r0.x * r0.y);
  r0.x = -9.99999975e-05 + r0.x;
  r0.x = cmp(r0.x < 0);
  if (r0.x != 0) discard;
  o0.xyzw = float4(0,0,0,0);
  return;
}

/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
// Generated by Microsoft (R) D3D Shader Disassembler
//
//   using 3Dmigoto v1.3.16 on Mon Jul 13 21:00:07 2026
//
//
// Input signature:
//
// Name                 Index   Mask Register SysValue  Format   Used
// -------------------- ----- ------ -------- -------- ------- ------
// SV_POSITION              0   xyzw        0      POS   float   xyz
// TEXCOORD                10   xyzw        1     NONE   float
// TEXCOORD                11   xyzw        2     NONE   float
// TEXCOORD                 0   xy          3     NONE   float
// TEXCOORD                 1   xy          4     NONE   float
// TEXCOORD                 2   xy          5     NONE   float
// TEXCOORD                 3   xy          6     NONE   float    y
// SV_IsFrontFace           0   x           7    FFACE    uint
//
//
// Output signature:
//
// Name                 Index   Mask Register SysValue  Format   Used
// -------------------- ----- ------ -------- -------- ------- ------
// SV_Target                0   xyzw        0   TARGET   float   xyzw
//
ps_5_0
dcl_globalFlags refactoringAllowed
dcl_immediateConstantBuffer { { 0, 0, 0, 0},
                              { 0.777777791, 0, 0, 0},
                              { 0.333333343, 0, 0, 0},
                              { 0.666666687, 0, 0, 0},
                              { 0.555555582, 0, 0, 0},
                              { 0.222222224, 0, 0, 0},
                              { 0.444444448, 0, 0, 0},
                              { 0.111111112, 0, 0, 0},
                              { 0.888888896, 0, 0, 0} }
dcl_constantbuffer CB0[136], immediateIndexed
dcl_constantbuffer CB1[34], immediateIndexed
dcl_constantbuffer CB2[65], immediateIndexed
dcl_input_ps_siv linear noperspective v0.xyz, position
dcl_input_ps linear v6.y
dcl_output o0.xyzw
dcl_temps 5
add r0.xy, v0.xyxx, -cb0[134].xyxx
mul r1.yz, r0.xxyx, cb0[135].zzwz
add r0.z, -v6.y, cb2[64].y
ge r0.w, cb2[57].y, l(0.500000)
if_nz r0.w
  mul r2.xyzw, v0.yyyy, cb0[45].xyzw
  mad r2.xyzw, v0.xxxx, cb0[44].xyzw, r2.xyzw
  mad r2.xyzw, v0.zzzz, cb0[46].xyzw, r2.xyzw
  add r2.xyzw, r2.xyzw, cb0[47].xyzw
  div r2.xyz, r2.xyzx, r2.wwww
  add r2.xyz, r2.xyzx, -cb0[70].xyzx
  mov r3.x, -cb1[32].w
  mov r3.yz, -cb1[33].xxyx
  add r2.xyz, r2.xyzx, r3.xyzx
  mul r4.xy, r2.xxxx, cb1[27].zwzz
  mul r4.z, r2.x, cb1[28].x
  mad r2.xyw, cb1[28].yzyw, r2.yyyy, r4.xyxz
  mad r2.xyz, cb1[29].xyzx, r2.zzzz, r2.xywx
  add r0.w, r2.x, -cb2[57].z
  dp2 r1.w, r2.yzyy, r2.yzyy
  sqrt r1.w, r1.w
  mad r1.w, r1.w, l(0.0153846154), l(-0.200000)
  mul_sat r1.w, r1.w, l(1.250000)
  mad r2.x, r1.w, l(-2.000000), l(3.000000)
  mul r1.w, r1.w, r1.w
  mul r1.w, r1.w, r2.x
  add_sat r2.x, -r2.y, l(-1.000000)
  mul r1.w, r1.w, r2.x
  min r1.w, r1.w, l(1.000000)
  mad r1.w, r1.w, l(54.500000), l(0.500000)
  div_sat r1.w, r0.w, r1.w
  add r1.w, -r1.w, l(1.000000)
  ge r0.w, l(0.010000), r0.w
  dp3 r2.x, r3.xyzx, r3.xyzx
  sqrt r2.x, r2.x
  ge r2.x, r2.x, l(0.010000)
  movc r2.x, r2.x, l(0), l(1.000000)
  movc r0.w, r0.w, l(1.000000), r2.x
else
  min r2.x, cb2[58].z, cb2[58].y
  min r1.w, r2.x, l(1.000000)
  mov r0.w, l(0)
endif
lt r2.x, l(0.300000), cb2[58].w
if_nz r2.x
  ftoi r0.xy, r0.xyxx
  and r2.yz, r0.xxyx, l(0, 0x80000000, 0x80000000, 0)
  imax r0.xy, r0.xyxx, -r0.xyxx
  udiv null, r0.xy, r0.xyxx, l(3, 3, 0, 0)
  ineg r3.xy, r0.xyxx
  movc r0.xy, r2.yzyy, r3.xyxx, r0.xyxx
  imad r0.x, r0.x, l(3), r0.y
  imax r0.x, r0.x, l(0)
  mad_sat r0.x, r1.w, l(2.000000), -icb[r0.x + 0].x
  add r0.x, r0.x, l(0.329078436)
endif
movc r0.x, r2.x, r0.x, l(1.000000)
add r0.y, -r0.x, l(1.000000)
mad r0.x, r0.w, r0.y, r0.x
min r0.x, r0.x, l(1.000000)
div r0.y, cb0[135].x, cb0[135].y
max r0.y, r0.y, l(1.000000)
mul r2.x, r0.y, cb2[59].x
mov r2.yw, l(0,0.500000,0,0.500000)
mul r1.x, r1.y, r0.y
add r1.yw, r1.xxxz, -r2.xxxy
dp2 r0.w, r1.ywyy, cb2[39].xyxx
mad r0.w, r0.y, cb2[59].x, r0.w
ge r0.w, r0.w, r2.x
mul r2.z, r0.y, cb2[61].x
add r1.xz, r1.xxzx, -r2.zzwz
dp2 r1.x, r1.xzxx, cb2[41].xyxx
mad r0.y, cb2[61].x, r0.y, r1.x
ge r0.y, r0.y, r2.z
and r1.xy, r0.ywyy, l(0x3f800000, 0x3f800000, 0, 0)
movc r0.y, r0.y, l(-1.000000), l(-0.000000)
add r0.y, r0.y, r1.y
max r0.y, r0.y, l(0.000000)
movc r1.yz, r0.wwww, l(0,0,-0.000000,0), l(0,1.000000,-1.000000,0)
add r0.y, r0.y, r1.z
mad r0.y, cb2[63].y, r0.y, r1.y
add r0.w, -r0.y, r1.x
mad r0.y, cb2[63].w, r0.w, r0.y
add r0.y, r0.y, l(-1.000000)
mad r0.y, cb2[64].x, r0.y, l(1.000000)
min r0.x, r0.y, r0.x
add r0.xy, r0.xzxx, l(-0.333000, 1.000000, 0.000000, 0.000000)
ge r0.x, r0.x, l(0.001000)
and r0.x, r0.x, l(0x3f800000)
mul_sat r0.y, r0.y, cb2[64].z
add r0.y, r0.y, l(-1.000000)
mad r0.y, cb2[64].w, r0.y, l(1.000000)
mul_sat r0.x, r0.y, r0.x
add r0.x, r0.x, l(-0.000100)
lt r0.x, r0.x, l(0.000000)
discard_nz r0.x
mov o0.xyzw, l(0,0,0,0)
ret
// Approximately 0 instruction slots used

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
